package com.wanjia.estate.pojo.print;

import com.alibaba.fastjson.annotation.JSONField;
import com.wanjia.estate.annotation.Argument;
import lombok.AccessLevel;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class PrintInfo {

    @Data
    public static class Request implements Serializable {

        @Argument(key = "--PrinterIP")
        private String ip;

        @Argument(key = "--PrinterName")
        private String name;

        @Argument(key = "--ResultPath")
        private String json;
    }

    @Data
    public static class Response implements Serializable {
        /**
         * 打印机状态值
         *
         * @see com.wanjia.estate.constant.printinfo.Status
         */
        @JSONField(name = "Status")
        private Integer status;

        /**
         * 打印机错误信息
         *
         * @see com.wanjia.estate.constant.printinfo.ErrorType
         */
        @JSONField(name = "ErrorType")
        private Integer errorType;

        /**
         * 打印队列数目
         * <p>当前打印队列里的任务数</p>
         */
        @JSONField(name = "QueueNum")
        private Integer queueNum;

        /**
         * 返回当前打印机已累计打印页数
         * <p>当前打印机已累计打印页数</p>
         */
        @JSONField(name = "PrintPageNum")
        private Integer printPageNum;
        private Integer tray1;
        private Integer tray2;
        private Integer tray3;
        @JSONField(name = "YellowInkCapacity")
        private Double yellowInkCapacity;
        @JSONField(name = "MagentaInkCapacity")
        private Double magentaInkCapacity;
        @JSONField(name = "CyanInkCapacity")
        private Double cyanInkCapacity;
        @JSONField(name = "BlackInkCapacity")
        private Double blackInkCapacity;
        @JSONField(name = "PrintPageNumPoweron")
        private Integer printPageNumPoweron;
    }
}
